package org.jsola.hr.dto.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.dto.BaseDTO;
import org.jsola.hr.constant.convert.PostTypeConverter;
import org.jsola.hr.constant.convert.SocStatusEnumConverter;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author lyh
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(description = "【社保名单】excel导出对象")
public class SocListExportDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ExcelProperty(value = "姓名")
    private String empName;

    @ExcelProperty(value = "身份证号")
    private String idCard;

    @ExcelProperty(value = "社保状态", converter = SocStatusEnumConverter.class)
    private Integer empSocStatus;

    @ExcelProperty(value = "医保状态", converter = SocStatusEnumConverter.class)
    private Integer empMeStatus;

    @ExcelProperty(value = "公积金状态", converter = SocStatusEnumConverter.class)
    private Integer empPfStatus;

    @ExcelProperty(value = "人员类型")
    private String postTypeStr;

    private Integer postType;

    @ExcelProperty(value = "参保城市")
    private String socCityName;

    @ExcelProperty(value = "参保方案")
    private String socProgName;

    @DateTimeFormat("yyyy-MM")
    @ExcelProperty(value = "参保时间")
    private Date socDate;

    @DateTimeFormat("yyyy-MM")
    @ExcelProperty(value = "停保时间")
    private Date stopSocDate;

    @DateTimeFormat("yyyy-MM")
    @ExcelProperty(value = "封存时间")
    private Date sealedDate;

    @ExcelProperty(value = "单位社保")
    private BigDecimal companySocAmount;

    @ExcelProperty(value = "个人社保")
    private BigDecimal personalSocAmount;

    @ExcelProperty(value = "单位公积金")
    private BigDecimal companyPfAmount;

    @ExcelProperty(value = "个人公积金")
    private BigDecimal personalPfAmount;

    @ExcelProperty(value = "社保总计")
    private BigDecimal socAmount;

    @ExcelProperty(value = "公积金总共计")
    private BigDecimal pfAmount;
}
